Load the libraries and the SA data
## Load the libs
# EDA
library(DataExplorer)
library(ggplot2)
library(plotly)
# Core
library(tidyverse)
library(timetk)
library(lubridate)
# Accuracy
library(yardstick)
# Anomaly
library(anomalize)
# 1.0 Read DATA -----
# consumption ----
sa_cons <- read.csv("sa/totaldemand_sa.csv")
## Convert Dt
sa_cons<-sa_cons%>%mutate(DATETIME = ymd_hms(DATETIME))
# temperature ----
temp_sa<-read.csv("sa/temprature_sa.csv")
## convert Dt
temp_sa<- temp_sa %>% mutate(DATETIME = ymd_hms(DATETIME))
# forecasted ----
forcst_sa <- read.csv("sa/forecastdemand_sa.csv")
forcst_sa<- forcst_sa%>% mutate(DATETIME = ymd_hms(DATETIME),LASTCHANGED = ymd_hms(LASTCHANGED))
Plot the time series
sa_cons%>%plot_time_series(.date_var = DATETIME,.value = TOTALDEMAND,.interactive = F)

ACF and PACF
sa_cons%>%filter(DATETIME>"2015-01-01")%>%
plot_acf_diagnostics(.date_var = DATETIME,.value = TOTALDEMAND,.lags = 0:17520)
Plot seasonal diagnostics
sa_cons%>%filter(DATETIME>"2015-01-01")%>%
plot_seasonal_diagnostics(DATETIME, TOTALDEMAND,.feature_set = c("quarter","month.lbl"),.y_lab = "DEMAND")
sa_cons %>%filter(DATETIME>"2015-01-01")%>%
plot_seasonal_diagnostics(DATETIME, TOTALDEMAND,.feature_set = c("hour","wday.lbl","week"),.y_lab = "DEMAND")
NA
LS0tDQp0aXRsZTogIkdyb3VwIEFzc2lnbm1lbnQiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpMb2FkIHRoZSBsaWJyYXJpZXMgYW5kIHRoZSBTQSBkYXRhIA0KDQpgYGB7cn0NCiMjIExvYWQgdGhlIGxpYnMNCiMgRURBDQpsaWJyYXJ5KERhdGFFeHBsb3JlcikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocGxvdGx5KQ0KIyBDb3JlIA0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHRpbWV0aykNCmxpYnJhcnkobHVicmlkYXRlKQ0KIyBBY2N1cmFjeQ0KbGlicmFyeSh5YXJkc3RpY2spDQojIEFub21hbHkNCmxpYnJhcnkoYW5vbWFsaXplKQ0KIyAxLjAgUmVhZCBEQVRBIC0tLS0tDQojIGNvbnN1bXB0aW9uIC0tLS0NCnNhX2NvbnMgPC0gcmVhZC5jc3YoInNhL3RvdGFsZGVtYW5kX3NhLmNzdiIpDQojIyBDb252ZXJ0IER0DQpzYV9jb25zPC1zYV9jb25zJT4lbXV0YXRlKERBVEVUSU1FID0geW1kX2htcyhEQVRFVElNRSkpDQoNCiMgdGVtcGVyYXR1cmUgLS0tLQ0KDQp0ZW1wX3NhPC1yZWFkLmNzdigic2EvdGVtcHJhdHVyZV9zYS5jc3YiKQ0KIyMgY29udmVydCBEdA0KdGVtcF9zYTwtIHRlbXBfc2EgJT4lIG11dGF0ZShEQVRFVElNRSA9IHltZF9obXMoREFURVRJTUUpKQ0KDQojIGZvcmVjYXN0ZWQgLS0tLQ0KZm9yY3N0X3NhIDwtIHJlYWQuY3N2KCJzYS9mb3JlY2FzdGRlbWFuZF9zYS5jc3YiKSANCmZvcmNzdF9zYTwtIGZvcmNzdF9zYSU+JSBtdXRhdGUoREFURVRJTUUgPSB5bWRfaG1zKERBVEVUSU1FKSxMQVNUQ0hBTkdFRCA9IHltZF9obXMoTEFTVENIQU5HRUQpKQ0KYGBgDQoNClBsb3QgdGhlIHRpbWUgc2VyaWVzDQoNCmBgYHtyfQ0Kc2FfY29ucyU+JXBsb3RfdGltZV9zZXJpZXMoLmRhdGVfdmFyID0gREFURVRJTUUsLnZhbHVlID0gVE9UQUxERU1BTkQsLmludGVyYWN0aXZlID0gRikNCg0KYGBgDQpBQ0YgYW5kIFBBQ0YNCg0KYGBge3J9DQpzYV9jb25zJT4lZmlsdGVyKERBVEVUSU1FPj0iMjAxNS0wMS0wMSIpJT4lDQogIHBsb3RfYWNmX2RpYWdub3N0aWNzKC5kYXRlX3ZhciA9IERBVEVUSU1FLC52YWx1ZSA9IFRPVEFMREVNQU5ELC5sYWdzID0gMDoxNzUyMCkNCmBgYA0KUGxvdCBzZWFzb25hbCBkaWFnbm9zdGljcw0KDQpgYGB7cn0NCnNhX2NvbnMlPiVmaWx0ZXIoREFURVRJTUU+PSIyMDE1LTAxLTAxIiklPiUNCiAgcGxvdF9zZWFzb25hbF9kaWFnbm9zdGljcyhEQVRFVElNRSwgVE9UQUxERU1BTkQsLmZlYXR1cmVfc2V0ID0gYygicXVhcnRlciIsIm1vbnRoLmxibCIpLC55X2xhYiA9ICJERU1BTkQiKQ0KYGBgDQpgYGB7cn0NCnNhX2NvbnMgJT4lZmlsdGVyKERBVEVUSU1FPj0iMjAxNS0wMS0wMSIpJT4lDQogIHBsb3Rfc2Vhc29uYWxfZGlhZ25vc3RpY3MoREFURVRJTUUsIFRPVEFMREVNQU5ELC5mZWF0dXJlX3NldCA9IGMoImhvdXIiLCJ3ZGF5LmxibCIsIndlZWsiKSwueV9sYWIgPSAiREVNQU5EIikNCg0KYGBg